package utils

import (
	"encoding/json"
	"github.com/astaxie/beego"
)

func Struct2Map(data interface{}) (map[string]interface{}, error) {
	jsonBytes, err := json.Marshal(data)
	if err != nil {
		beego.Error(err)
		return nil, err
	}

	var mapResult map[string]interface{}
	if err := json.Unmarshal(jsonBytes, &mapResult); err != nil {
		beego.Error(err)
		return nil, err
	}
	return mapResult, nil
}

func Struct2Maps(data interface{}) ([]map[string]interface{}, error) {
	jsonBytes, err := json.Marshal(data)
	if err != nil {
		beego.Error(err)
		return nil, err
	}

	var mapResult []map[string]interface{}
	if err := json.Unmarshal(jsonBytes, &mapResult); err != nil {
		beego.Error(err)
		return nil, err
	}
	return mapResult, nil
}
